git

头像
yichair
    阅读 3 分钟

    一、设置名字邮箱

    git config --global user.name "name"
    git config --global user.email "email@mail.com"

    二、工作区和版本库简介

    工作区:电脑上看见的目录或文件
    版本库:.git目录(其中有stage暂存区,git为我们创建的第一分支master,指向master的指针HEAD)

    1、创建仓库并提及到版本库

    git init 把这个目录变成git可以管理的仓库
    git add hi.txt 添加到暂存区
    git commit -m 提交到本地版本库
    

    2、版本回退
    查看修改历史,由近到远git loggitlog--pretty=oneline(横排显示)git reflog//查看版本号git reset –hard HEAD^//回退上一个版本git reset –hard HEAD^^//回退上上个版本git reset –hard HEAD~100//回退前一百个版本cat readme.txt//查看内容:
    3、撤销和删除

    git checkout -- file 撤销在工作区还没有存入暂存区的修改
    rm test.txt 删除文件夹下文件
    git commit -m "" 提交删除,文件彻底删除
    git checkout -- test.txt 版本库里恢复文件,若提交了删除则恢复只有名字
    
    

    提交文件步骤:文件添加进暂存区,暂存区内容提交到当前分支

    三、分支操作

    分支管理策略
    一般在新建的dev分支上干活,分支代码稳定后发布到master主分支上
    git一般使用”Fast forward”模式,在这种模式下,删除分支后,会丢掉分支信息,现在我们来使用带参数 –no-ff来禁用”Fast forward”模式
    创建一个dev分支。
    步骤: 修改readme.txt内容。
    添加到暂存区。
    切换回主分支(master)。
    合并dev分支,使用命令git merge --no-ff -m "注释" dev
    查看历史记录

    git checkout -b dev 创建+切换分支dev
    git checkout dev 切换分支
    git branch dev 创建分支
    git branch -d dev 删除分支
    git branch 查看分支,会列出所有的分支,当前分支前面会添加一个星号
    git merge dev master合并分支
    git log 查看分支合并情况
    

    创建分支,修改文章,添加到暂存区,提交到版本库

    git checkout -b dev
    git add hi.txt
    git commit -m "提交"
    

    2、bug分支
    git stash 把当前工作现场“储藏”起来
    git checkout master 切换到需要修复bug的分支

    git checkout -b issue-101 创建临时分支,修复bug101,提交
    git add readme.txt
    git commit -m "fix bug 101"

    git checkout master返回分支,合并bug修复分支,删除bug修复分支
    git merge --no-ff -m "merged bug fix 101" issue-101
    git branch -d issue-101

    git checkout dev返回工作的分支
    git status 工作区是干净的
    git stash list 查看隐藏的列表

    恢复隐藏内容:
    git stash apply 恢复
    git stash drop 删除

    git stash pop 恢复并删除
    git stash apply stash@{0} 多次隐藏,恢复指定stash
    3、feature分支
    每添加一个新功能,最好新建一个feature分支,在上面开发,完成后,合并,最后,删除该feature分支
    git checkout -b feature-new
    git add hi.txt
    git commit -m "add feature new"
    git checkout master
    git merge --no-ff -m "merged feature-new" feature-new
    git branch -d feature-new
    git branch -D feature-new//没合并之前强行删除

    四、远程仓库

    1、本地pc机和gtihub建立连接
    ssh-keygen -t rsa -C "email@qq.com"
    GitHub创建ssh keys
    ssh -T git@github.com 测试你的ssh-key

    注:
    1、不能使用https://github.com/yiy-curtai...,这是用的https而不是git,需要输入用户名密码
    2、远程repository和我本地的repository冲突导致的,push前先将远程repository修改pull下来,git pull origin master

    2、本地仓库和GitHub仓库建立连接
    git remote add origin git@github.com:yiy-curtain/newTest.git

    3、本地分支与GitHub仓库的分支建立连接
    git branch --set-upstream dev origin/dev 本地dev与远程仓库dev建立连接
    git push -u origin master 建立连接且上传

    4、本地分支推送到远程仓库分支
    git push origin master 仅推送提交到本地分支的

    5、克隆远程仓库
    git clone git@github.com:yiy-curtain/testgit2 在需要克隆库的文件夹下执行
    ls

    1、创建ssh key:ssh-keygen -t rsa -C "email@qq.com"
    2、登录github,打开” settings”中的SSH Keys页面,然后点击“Add SSH Key”,填上任意title,在Key文本框里黏贴id_rsa.pub文件的内容
    3、Create a new repository创建新的仓库
    4、本地仓库的内容推送到GitHub仓库
    5、推送master分支时,加上了 –u参数,Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来,在以后的推送或者拉取时就可以简化命令:git push -u origin master

    五、多人协作

    从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin

    git remote 查看远程库信息
    git remote -v显示更详细的信息,显示了可以抓取和推送的origin的地址
    git push origin master(分支名)本地分支master推送到对应的远程分支上去
    git push origin dev
    git pull 如果push不成功,你的队友已经修改代码,需要先pull下来手动消除冲突然后再push
    master分支是主分支,因此要时刻与远程同步;
    dev分支是开发分支,团队所有成员都需要在上面工作,所以也需要与远程同步;
    bug分支只用于在本地修复bug,就没必要推到远程了,除非老板要看看你每周到底修复了几个bug;
    feature分支是否推到远程,取决于你是否和你的小伙伴合作在上面开发
    git checkout -b dev origin/dev创建远程origin的dev分支到本地

    注:
    使用https的url时会出现没有权限,可以用以下命令行绕开ssl验证或者在config文件的url中添加用户名密码
    git config --global http.sslVerify false


    yichair
    1 声望0 粉丝